package Test1;
// $ANTLR 3.4 ExprTree.g 2012-12-17 19:08:44

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class ExprTreeLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__8=8;
    public static final int T__9=9;
    public static final int T__10=10;
    public static final int T__11=11;
    public static final int T__12=12;
    public static final int T__13=13;
    public static final int ID=4;
    public static final int INT=5;
    public static final int NEWLINE=6;
    public static final int WS=7;

    // delegates
    // delegators
    public Lexer[] getDelegates() {
        return new Lexer[] {};
    }

    public ExprTreeLexer() {} 
    public ExprTreeLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public ExprTreeLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);
    }
    public String getGrammarFileName() { return "ExprTree.g"; }

    // $ANTLR start "T__8"
    public final void mT__8() throws RecognitionException {
        try {
            int _type = T__8;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:7:6: ( '(' )
            // ExprTree.g:7:8: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__8"

    // $ANTLR start "T__9"
    public final void mT__9() throws RecognitionException {
        try {
            int _type = T__9;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:8:6: ( ')' )
            // ExprTree.g:8:8: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__9"

    // $ANTLR start "T__10"
    public final void mT__10() throws RecognitionException {
        try {
            int _type = T__10;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:9:7: ( '*' )
            // ExprTree.g:9:9: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__10"

    // $ANTLR start "T__11"
    public final void mT__11() throws RecognitionException {
        try {
            int _type = T__11;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:10:7: ( '+' )
            // ExprTree.g:10:9: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__11"

    // $ANTLR start "T__12"
    public final void mT__12() throws RecognitionException {
        try {
            int _type = T__12;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:11:7: ( '-' )
            // ExprTree.g:11:9: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__12"

    // $ANTLR start "T__13"
    public final void mT__13() throws RecognitionException {
        try {
            int _type = T__13;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:12:7: ( '=' )
            // ExprTree.g:12:9: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "T__13"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:21:5: ( ( 'a' .. 'z' | 'A' .. 'Z' )+ )
            // ExprTree.g:21:9: ( 'a' .. 'z' | 'A' .. 'Z' )+
            {
            // ExprTree.g:21:9: ( 'a' .. 'z' | 'A' .. 'Z' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0 >= 'A' && LA1_0 <= 'Z')||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ExprTree.g:
            	    {
            	    if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "INT"
    public final void mINT() throws RecognitionException {
        try {
            int _type = INT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:22:5: ( ( '0' .. '9' )+ )
            // ExprTree.g:22:9: ( '0' .. '9' )+
            {
            // ExprTree.g:22:9: ( '0' .. '9' )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // ExprTree.g:
            	    {
            	    if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
            	        input.consume();
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "INT"

    // $ANTLR start "NEWLINE"
    public final void mNEWLINE() throws RecognitionException {
        try {
            int _type = NEWLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:23:8: ( ( ( ( '/r' )? '/n' ) | ';' )+ )
            // ExprTree.g:23:10: ( ( ( '/r' )? '/n' ) | ';' )+
            {
            // ExprTree.g:23:10: ( ( ( '/r' )? '/n' ) | ';' )+
            int cnt4=0;
            loop4:
            do {
                int alt4=3;
                int LA4_0 = input.LA(1);

                if ( (LA4_0=='/') ) {
                    alt4=1;
                }
                else if ( (LA4_0==';') ) {
                    alt4=2;
                }


                switch (alt4) {
            	case 1 :
            	    // ExprTree.g:23:11: ( ( '/r' )? '/n' )
            	    {
            	    // ExprTree.g:23:11: ( ( '/r' )? '/n' )
            	    // ExprTree.g:23:12: ( '/r' )? '/n'
            	    {
            	    // ExprTree.g:23:12: ( '/r' )?
            	    int alt3=2;
            	    int LA3_0 = input.LA(1);

            	    if ( (LA3_0=='/') ) {
            	        int LA3_1 = input.LA(2);

            	        if ( (LA3_1=='r') ) {
            	            alt3=1;
            	        }
            	    }
            	    switch (alt3) {
            	        case 1 :
            	            // ExprTree.g:23:12: '/r'
            	            {
            	            match("/r"); 



            	            }
            	            break;

            	    }


            	    match("/n"); 



            	    }


            	    }
            	    break;
            	case 2 :
            	    // ExprTree.g:23:24: ';'
            	    {
            	    match(';'); 

            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // ExprTree.g:24:5: ( ( ' ' | '/t' )+ )
            // ExprTree.g:24:9: ( ' ' | '/t' )+
            {
            // ExprTree.g:24:9: ( ' ' | '/t' )+
            int cnt5=0;
            loop5:
            do {
                int alt5=3;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==' ') ) {
                    alt5=1;
                }
                else if ( (LA5_0=='/') ) {
                    alt5=2;
                }


                switch (alt5) {
            	case 1 :
            	    // ExprTree.g:24:10: ' '
            	    {
            	    match(' '); 

            	    }
            	    break;
            	case 2 :
            	    // ExprTree.g:24:14: '/t'
            	    {
            	    match("/t"); 



            	    }
            	    break;

            	default :
            	    if ( cnt5 >= 1 ) break loop5;
                        EarlyExitException eee =
                            new EarlyExitException(5, input);
                        throw eee;
                }
                cnt5++;
            } while (true);


             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        	// do for sure before leaving
        }
    }
    // $ANTLR end "WS"

    public void mTokens() throws RecognitionException {
        // ExprTree.g:1:8: ( T__8 | T__9 | T__10 | T__11 | T__12 | T__13 | ID | INT | NEWLINE | WS )
        int alt6=10;
        switch ( input.LA(1) ) {
        case '(':
            {
            alt6=1;
            }
            break;
        case ')':
            {
            alt6=2;
            }
            break;
        case '*':
            {
            alt6=3;
            }
            break;
        case '+':
            {
            alt6=4;
            }
            break;
        case '-':
            {
            alt6=5;
            }
            break;
        case '=':
            {
            alt6=6;
            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            {
            alt6=7;
            }
            break;
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            {
            alt6=8;
            }
            break;
        case '/':
            {
            int LA6_9 = input.LA(2);

            if ( (LA6_9=='n'||LA6_9=='r') ) {
                alt6=9;
            }
            else if ( (LA6_9=='t') ) {
                alt6=10;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 9, input);

                throw nvae;

            }
            }
            break;
        case ';':
            {
            alt6=9;
            }
            break;
        case ' ':
            {
            alt6=10;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 6, 0, input);

            throw nvae;

        }

        switch (alt6) {
            case 1 :
                // ExprTree.g:1:10: T__8
                {
                mT__8(); 


                }
                break;
            case 2 :
                // ExprTree.g:1:15: T__9
                {
                mT__9(); 


                }
                break;
            case 3 :
                // ExprTree.g:1:20: T__10
                {
                mT__10(); 


                }
                break;
            case 4 :
                // ExprTree.g:1:26: T__11
                {
                mT__11(); 


                }
                break;
            case 5 :
                // ExprTree.g:1:32: T__12
                {
                mT__12(); 


                }
                break;
            case 6 :
                // ExprTree.g:1:38: T__13
                {
                mT__13(); 


                }
                break;
            case 7 :
                // ExprTree.g:1:44: ID
                {
                mID(); 


                }
                break;
            case 8 :
                // ExprTree.g:1:47: INT
                {
                mINT(); 


                }
                break;
            case 9 :
                // ExprTree.g:1:51: NEWLINE
                {
                mNEWLINE(); 


                }
                break;
            case 10 :
                // ExprTree.g:1:59: WS
                {
                mWS(); 


                }
                break;

        }

    }


 

}